// c_variant.h
#ifndef C_VARIANT_H
#define C_VARIANT_H

#ifdef __cplusplus
extern "C" {
#endif

// 不透明指针（C侧无法直接访问内部结构）
struct CVariant;

// 创建/销毁
struct CVariant* cvariant_create();
void cvariant_destroy(struct CVariant* var);

// 设置值
void cvariant_set_int(struct CVariant* var, int value);
void cvariant_set_float(struct CVariant* var, float value);
void cvariant_set_str(struct CVariant* var, const char* value);

// 获取类型（0=int, 1=float, 2=str, -1=错误）
int cvariant_get_type(const struct CVariant* var);

// 获取值
int cvariant_get_int(const struct CVariant* var);
float cvariant_get_float(const struct CVariant* var);
const char* cvariant_get_str(const struct CVariant* var);

#ifdef __cplusplus
}
#endif

#endif // C_VARIANT_H